<!DOCTYPE html>
<html lang="en-US">
  <head>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
    <title>模型 | CatchAdmin 官网</title>
    <meta name="description" content="">
    <meta name="generator" content="VuePress 1.8.2">
    <style>a[title="站长统计"]{display:none}</style>
    <script data-ad-client="ca-pub-1505209242532150" async="true" src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script>
    <script src="https://v1.cnzz.com/z_stat.php?id=1279921342&amp;web_id=1279921342"></script>
    <meta name="description" content="基于 Thinkphp & Vue 开发的后台管理框架">
    <meta name="keywords" content="catchadmin, 后台管理, 前后端分离, thinkphp后台管理框架, thinkphp前后端分离框架,php, elementui">
    <link rel="preload" href="/assets/css/0.styles.6834c255.css" as="style"><link rel="preload" href="/assets/js/app.d0396f44.js" as="script"><link rel="preload" href="/assets/js/2.1cef47df.js" as="script"><link rel="preload" href="/assets/js/30.c7732a2c.js" as="script"><link rel="prefetch" href="/assets/js/10.483f2013.js"><link rel="prefetch" href="/assets/js/11.981d4461.js"><link rel="prefetch" href="/assets/js/12.95d2c383.js"><link rel="prefetch" href="/assets/js/13.061c2fe0.js"><link rel="prefetch" href="/assets/js/14.ec2753db.js"><link rel="prefetch" href="/assets/js/15.8ba1c321.js"><link rel="prefetch" href="/assets/js/16.f7f0d34c.js"><link rel="prefetch" href="/assets/js/17.aac0bf62.js"><link rel="prefetch" href="/assets/js/18.2e2fe306.js"><link rel="prefetch" href="/assets/js/19.aee304b3.js"><link rel="prefetch" href="/assets/js/20.86a73bc1.js"><link rel="prefetch" href="/assets/js/21.8992c972.js"><link rel="prefetch" href="/assets/js/22.0a78500a.js"><link rel="prefetch" href="/assets/js/23.06342909.js"><link rel="prefetch" href="/assets/js/24.06fd96a3.js"><link rel="prefetch" href="/assets/js/25.00664d4e.js"><link rel="prefetch" href="/assets/js/26.c3d4b548.js"><link rel="prefetch" href="/assets/js/27.3c6927ad.js"><link rel="prefetch" href="/assets/js/28.74498c0b.js"><link rel="prefetch" href="/assets/js/29.aae1a826.js"><link rel="prefetch" href="/assets/js/3.4d2bdca7.js"><link rel="prefetch" href="/assets/js/31.20403043.js"><link rel="prefetch" href="/assets/js/32.7b8e9cfe.js"><link rel="prefetch" href="/assets/js/33.8610da11.js"><link rel="prefetch" href="/assets/js/4.d7b1015b.js"><link rel="prefetch" href="/assets/js/5.ff87de2e.js"><link rel="prefetch" href="/assets/js/6.0e91e688.js"><link rel="prefetch" href="/assets/js/7.ba30e213.js"><link rel="prefetch" href="/assets/js/8.35122549.js"><link rel="prefetch" href="/assets/js/9.081b18e5.js">
    <link rel="stylesheet" href="/assets/css/0.styles.6834c255.css">
  </head>
  <body>
    <div id="app" data-server-rendered="true"><div class="theme-container"><header class="navbar"><div class="ant-row"><div class="sidebar-button"><i aria-label="icon: bars" class="anticon anticon-bars"><svg viewBox="0 0 1024 1024" focusable="false" data-icon="bars" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M912 192H328c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h584c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0 284H328c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h584c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0 284H328c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h584c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zM104 228a56 56 0 1 0 112 0 56 56 0 1 0-112 0zm0 284a56 56 0 1 0 112 0 56 56 0 1 0-112 0zm0 284a56 56 0 1 0 112 0 56 56 0 1 0-112 0z"></path></svg></i> <span></span></div> <div class="ant-col ant-col-xs-24 ant-col-sm-24 ant-col-md-6 ant-col-lg-5 ant-col-xl-5 ant-col-xxl-4"><a href="/" class="router-link-active no-logo home-link"><!----> <span class="site-name">CatchAdmin 官网</span></a> <div class="search-box mobile-search"><input aria-label="Search" autocomplete="off" spellcheck="false" value=""> <!----></div></div> <div class="ant-col ant-col-xs-0 ant-col-sm-0 ant-col-md-18 ant-col-lg-19 ant-col-xl-19 ant-col-xxl-20"><div class="search-box"><input aria-label="Search" autocomplete="off" spellcheck="false" value=""> <!----></div> <nav class="nav-links can-hide"><ul role="menu" id="nav" class="ant-menu ant-menu-horizontal ant-menu-root ant-menu-light"><li role="menuitem" class="ant-menu-submenu ant-menu-submenu-horizontal ant-menu-overflowed-submenu" style="display:none;"><div aria-haspopup="true" class="ant-menu-submenu-title"><span>···</span><i class="ant-menu-submenu-arrow"></i></div></li><li role="menuitem" class="ant-menu-item"><a href="/" class="router-link-active">
          🏠首页
        </a></li><li role="menuitem" class="ant-menu-submenu ant-menu-submenu-horizontal ant-menu-overflowed-submenu" style="display:none;"><div aria-haspopup="true" class="ant-menu-submenu-title"><span>···</span><i class="ant-menu-submenu-arrow"></i></div></li><li role="menuitem" class="ant-menu-item"><a href="/docs/">
          📖文档
        </a></li><li role="menuitem" class="ant-menu-submenu ant-menu-submenu-horizontal ant-menu-overflowed-submenu" style="display:none;"><div aria-haspopup="true" class="ant-menu-submenu-title"><span>···</span><i class="ant-menu-submenu-arrow"></i></div></li><li role="menuitem" class="ant-menu-item ant-menu-item-selected"><a href="/laravel/" class="router-link-active">
          📖Laravel
        </a></li><li role="menuitem" class="ant-menu-submenu ant-menu-submenu-horizontal ant-menu-overflowed-submenu" style="display:none;"><div aria-haspopup="true" class="ant-menu-submenu-title"><span>···</span><i class="ant-menu-submenu-arrow"></i></div></li><li role="menuitem" class="ant-menu-item"><a href="/faq/">
          🤔FAQ
        </a></li><li role="menuitem" class="ant-menu-submenu ant-menu-submenu-horizontal ant-menu-overflowed-submenu" style="display:none;"><div aria-haspopup="true" class="ant-menu-submenu-title"><span>···</span><i class="ant-menu-submenu-arrow"></i></div></li><li role="menuitem" class="ant-menu-item"><a href="/donate/">
          🎉赞助名单
        </a></li><li role="menuitem" class="ant-menu-submenu ant-menu-submenu-horizontal ant-menu-overflowed-submenu" style="display:none;"><div aria-haspopup="true" class="ant-menu-submenu-title"><span>···</span><i class="ant-menu-submenu-arrow"></i></div></li><li role="menuitem" class="ant-menu-submenu ant-menu-submenu-horizontal"><div aria-haspopup="true" class="ant-menu-submenu-title"><span>
          🚀仓库地址
        </span><i class="ant-menu-submenu-arrow"></i></div></li><li role="menuitem" class="ant-menu-submenu ant-menu-submenu-horizontal ant-menu-overflowed-submenu" style="visibility:hidden;position:absolute;"><div aria-haspopup="true" class="ant-menu-submenu-title"><span>···</span><i class="ant-menu-submenu-arrow"></i></div></li></ul> <!----></nav></div></div> <!----></header> <aside class="sidebar"><div><div class="ads"><div id="ads_1"><img src="https://cover.kancloud.cn/akasishikelu/thinkphp6!middle"> <span title="基于 catchadmin 的 Thinkphp 6.0 企业级后台管理开发&amp;源码分析">基于 catchadmin 的 Thinkphp 6.0 企业级后台管理开发&amp;源码分析</span></div></div> <div role="separator" id="reset-margin" class="ant-divider ant-divider-horizontal ant-divider-dashed"></div></div> <ul class="sidebar-links"><li><a href="/laravel/" aria-current="page" title="介绍" class="sidebar-link">介绍</a></li><li><a href="/laravel/install.html" title="项目安装" class="sidebar-link">项目安装</a></li><li><a href="/laravel/module.html" title="模块" class="sidebar-link">模块</a></li><li><a href="/laravel/model.html" aria-current="page" title="模型" class="active sidebar-link">模型</a><ul class="sidebar-sub-headers"><li class="sidebar-sub-header"><a href="/laravel/model.html#baseoperate" title="BaseOperate" class="sidebar-link">BaseOperate</a></li><li class="sidebar-sub-header"><a href="/laravel/model.html#软删除" title="软删除" class="sidebar-link">软删除</a></li><li class="sidebar-sub-header"><a href="/laravel/model.html#query-记录" title="Query 记录" class="sidebar-link">Query 记录</a></li></ul></li><li><a href="/laravel/console.html" title="命令" class="sidebar-link">命令</a></li><li><a href="/laravel/form.html" title="表单" class="sidebar-link">表单</a></li><li><a href="/laravel/table.html" title="表格组件" class="sidebar-link">表格组件</a></li><li><a href="/laravel/macros.html" title="扩展方法" class="sidebar-link">扩展方法</a></li><li><a href="/laravel/excel.html" title="Excel" class="sidebar-link">Excel</a></li><li><a href="/laravel/issue.html" title="常见问题" class="sidebar-link">常见问题</a></li></ul></aside> <main class="page"> <div class="theme-antdocs-content content__default"><h1 id="模型"><a href="#模型" class="header-anchor">#</a> 模型</h1> <p>和 <code>Thinkphp</code> 项目是一致的，在 <code>Laravel</code> 中也提供了基础的模型 <code>CatchModel</code>。在提供的基础操作了也基本保持了一致，所以切换过来还是比较方便的。下面是基础 <code>Model</code> 的代码</p> <div class="language-php extra-class"><pre class="language-php"><code><span class="token keyword">abstract</span> <span class="token keyword">class</span> <span class="token class-name">CatchModel</span> <span class="token keyword">extends</span> <span class="token class-name">Model</span>
<span class="token punctuation">{</span>
    <span class="token keyword">use</span> <span class="token package">BaseOperate</span><span class="token punctuation">,</span> Trans<span class="token punctuation">,</span> SoftDeletes<span class="token punctuation">;</span>

    <span class="token comment">/**
     * unix timestamp
     *
     * @var string
     */</span>
    <span class="token keyword">protected</span> <span class="token variable">$dateFormat</span> <span class="token operator">=</span> <span class="token string single-quoted-string">'U'</span><span class="token punctuation">;</span>

    <span class="token comment">/**
     * paginate limit
     */</span>
    <span class="token keyword">protected</span> <span class="token variable">$perPage</span> <span class="token operator">=</span> <span class="token number">10</span><span class="token punctuation">;</span>

    <span class="token comment">/**
     * enable status
     */</span>
    <span class="token keyword">public</span> <span class="token keyword">const</span> <span class="token constant">ENABLE</span> <span class="token operator">=</span> <span class="token number">1</span><span class="token punctuation">;</span>

    <span class="token comment">/**
     * disable status
     */</span>
    <span class="token keyword">public</span> <span class="token keyword">const</span> <span class="token constant">DISABLE</span> <span class="token operator">=</span> <span class="token number">2</span><span class="token punctuation">;</span>

    <span class="token comment">/**
     * @var string[]
     */</span>
    <span class="token keyword">protected</span> <span class="token variable">$hidden</span> <span class="token operator">=</span> <span class="token punctuation">[</span><span class="token string single-quoted-string">'deleted_at'</span><span class="token punctuation">]</span><span class="token punctuation">;</span>

    <span class="token comment">/**
     * @var string[]
     */</span>
    <span class="token keyword">protected</span> <span class="token variable">$casts</span> <span class="token operator">=</span> <span class="token punctuation">[</span>
        <span class="token string single-quoted-string">'created_at'</span> <span class="token operator">=&gt;</span> <span class="token string single-quoted-string">'timestamp'</span><span class="token punctuation">,</span>

        <span class="token string single-quoted-string">'updated_at'</span> <span class="token operator">=&gt;</span> <span class="token string single-quoted-string">'timestamp'</span><span class="token punctuation">,</span>

        <span class="token string single-quoted-string">'deleted_at'</span> <span class="token operator">=&gt;</span> <span class="token string single-quoted-string">'timestamp'</span>
    <span class="token punctuation">]</span><span class="token punctuation">;</span>
<span class="token punctuation">}</span>
</code></pre></div><ul><li>列表不会返回 <code>deleted_at</code> 字段</li> <li>对于 <code>created_at</code>, <code>updated_at</code>, <code>deleted_at</code> 全部使用的 <code>int</code> 类型时间戳</li> <li>提供常量 <code>Disable</code> 和 <code>Enable</code> 表示开启关闭，当然也可以使用这两个常量表示其他的正反状态</li> <li><code>perPage</code> 分页每页固定的显示的数量</li> <li><code>CatchModel</code> 还是默认使用软删除</li></ul> <h2 id="baseoperate"><a href="#baseoperate" class="header-anchor">#</a> BaseOperate</h2> <h3 id="storeby-array-data"><a href="#storeby-array-data" class="header-anchor">#</a> storeBy(array $data)</h3> <p>用于单个数据进行保存，不要在<strong>循环</strong>中使用该方法。⚠️注意 <code>storeBy</code> 是配合模型中的 <code>fillable</code> 字段使用，不再 <code>fillable</code> 中的字段将不会被填充。</p> <div class="language-php extra-class"><pre class="language-php"><code><span class="token variable">$model</span><span class="token operator">-&gt;</span><span class="token function">storeBy</span><span class="token punctuation">(</span><span class="token variable">$request</span><span class="token operator">-&gt;</span><span class="token function">all</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span>
</code></pre></div><h3 id="createby-array-data"><a href="#createby-array-data" class="header-anchor">#</a> createBy(array $data)</h3> <p>用于单个数据进行保存，支持循环中使用该方法。。⚠️注意 <code>storeBy</code> 是配合模型中的 <code>fillable</code> 字段使用，不再 <code>fillable</code> 中的字段将不会被填充</p> <div class="language-php extra-class"><pre class="language-php"><code><span class="token keyword">foreach</span><span class="token punctuation">(</span><span class="token variable">$data</span> <span class="token keyword">as</span> <span class="token variable">$item</span><span class="token punctuation">)</span> <span class="token punctuation">{</span>
    <span class="token variable">$model</span><span class="token operator">-&gt;</span><span class="token function">createBy</span><span class="token punctuation">(</span><span class="token variable">$item</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token punctuation">}</span>
</code></pre></div><h3 id="updateby-id-array-data-bool"><a href="#updateby-id-array-data-bool" class="header-anchor">#</a> updateBy($id, array $data): bool</h3> <p>表示更新数据。⚠️注意 <code>storeBy</code> 是配合模型中的 <code>fillable</code> 字段使用，不再 <code>fillable</code> 中的字段将不会被填充</p> <div class="language-php extra-class"><pre class="language-php"><code><span class="token variable">$model</span><span class="token operator">-&gt;</span><span class="token function">updateBy</span><span class="token punctuation">(</span><span class="token variable">$id</span><span class="token punctuation">,</span> <span class="token variable">$data</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
</code></pre></div><h3 id="firstby-id-array-columns"><a href="#firstby-id-array-columns" class="header-anchor">#</a> firstBy($id, array $columns = ['*'])</h3> <div class="language-php extra-class"><pre class="language-php"><code><span class="token variable">$model</span><span class="token operator">-&gt;</span><span class="token function">firstBy</span><span class="token punctuation">(</span><span class="token variable">$id</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
</code></pre></div><p>这里为了配合 thinkphp 的方法。其实在 Laravel 项目中，个人建议是这么写。</p> <div class="language-php extra-class"><pre class="language-php"><code><span class="token variable">$model</span><span class="token operator">-&gt;</span><span class="token function">where</span><span class="token punctuation">(</span><span class="token variable">$model</span><span class="token operator">-&gt;</span><span class="token function">getKeyName</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">,</span> <span class="token variable">$id</span><span class="token punctuation">)</span><span class="token operator">-&gt;</span><span class="token function">firstOr</span><span class="token punctuation">(</span><span class="token keyword">function</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">{</span>
    <span class="token keyword">throw</span> <span class="token keyword">new</span> <span class="token class-name class-name-fully-qualified"><span class="token punctuation">\</span>Exception</span><span class="token punctuation">(</span><span class="token string single-quoted-string">'nothing'</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token punctuation">}</span><span class="token punctuation">)</span>
</code></pre></div><p>OR</p> <div class="language-php extra-class"><pre class="language-php"><code><span class="token variable">$model</span><span class="token operator">-&gt;</span><span class="token function">find</span><span class="token punctuation">(</span><span class="token variable">$id</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
</code></pre></div><h3 id="deleteby-id-bool-force-false"><a href="#deleteby-id-bool-force-false" class="header-anchor">#</a> deleteBy($id, bool $force = false)</h3> <p>删除默认软删除，如果需要物理删除，$force = true;</p> <div class="language-php extra-class"><pre class="language-php"><code><span class="token variable">$model</span><span class="token operator">-&gt;</span><span class="token function">deleteBy</span><span class="token punctuation">(</span><span class="token variable">$id</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
</code></pre></div><h3 id="disorenable-id-string-field-status-bool"><a href="#disorenable-id-string-field-status-bool" class="header-anchor">#</a> disOrEnable($id, string $field = 'status'): bool</h3> <p>对于数据表内的<code>正/反</code>状态的字段，可以使用该发放</p> <div class="language-php extra-class"><pre class="language-php"><code><span class="token variable">$model</span><span class="token operator">-&gt;</span><span class="token function">disOrEnable</span><span class="token punctuation">(</span><span class="token variable">$id</span><span class="token punctuation">,</span> <span class="token string single-quoted-string">'clost'</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
</code></pre></div><h3 id="quicksearch"><a href="#quicksearch" class="header-anchor">#</a> quickSearch()</h3> <p>快速搜索。提供了一个是和约定的字段，来配合搜索</p> <ul><li><code>field:like</code> 模糊查询字段</li> <li><code>field:startLike</code> 模糊查询字段 <code>%field</code></li> <li><code>field:endLike</code> 模糊查询字段 <code>field%</code></li> <li><code>field:gt</code> 大于字段</li> <li><code>field:lt</code> 小于</li> <li><code>field:ge</code> 大于等于</li> <li><code>field:le</code> 小于等于</li> <li><code>field:in</code> 集合查询，字段值约定以<code>,</code>分割</li></ul> <h3 id="tree-id-parentid-fields"><a href="#tree-id-parentid-fields" class="header-anchor">#</a> tree($id, $parentId, ...$fields)</h3> <p>这样可以直接使用 <code>tree</code> 方法获取树形结构, 例如 <code>Roles</code></p> <div class="language-php extra-class"><pre class="language-php"><code><span class="token class-name static-context">Roles</span><span class="token operator">::</span><span class="token function">query</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token operator">-&gt;</span><span class="token function">tree</span><span class="token punctuation">(</span><span class="token string single-quoted-string">'id'</span><span class="token punctuation">,</span> <span class="token string single-quoted-string">'parent_id'</span><span class="token punctuation">,</span> <span class="token string single-quoted-string">'role_name'</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
</code></pre></div><h2 id="软删除"><a href="#软删除" class="header-anchor">#</a> 软删除</h2> <p><code>Laravel</code> 提供的默认的软删除，也就是 <code>deleted_at</code> 字段默认值是 <code>null</code>, 这也就表示对于查询最后都会加上</p> <div class="language-php extra-class"><pre class="language-php"><code>select <span class="token operator">*</span> from users where deleted_at <span class="token operator">=</span> <span class="token constant">null</span>
</code></pre></div><p>为了兼容 <code>thinkphp</code> 的查询，所以在这里修改默认查询, 变成下面这样</p> <div class="language-php extra-class"><pre class="language-php"><code>select <span class="token operator">*</span> from users where deleted_at <span class="token operator">=</span> <span class="token number">0</span>
</code></pre></div><p><code>Laravel</code> 通过设置全局查询来改变其软删除的条件，<code>thinkphp</code> 则是通过配置模型属性。如果继承了 <code>CatchModel</code>, 那么软删除的条件会自动变成<code>deleted_at = 0</code>。</p> <h2 id="query-记录"><a href="#query-记录" class="header-anchor">#</a> Query 记录</h2> <p><code>CatchAdmin</code> 提供了很方便的 SQL 日志记录方法。只需要在 <code>AppServiceProvider</code> 配置如下代码。</p> <div class="language-php extra-class"><pre class="language-php"><code><span class="token class-name static-context">Query</span><span class="token operator">::</span><span class="token function">listen</span><span class="token punctuation">(</span><span class="token variable">$latest</span><span class="token operator">=</span><span class="token constant boolean">true</span><span class="token punctuation">)</span>
</code></pre></div><p>如果最新的 <code>SQL</code> 将会按照时间倒叙记录，如果设置 <code>false</code>，那么将会按照时间正序记录。默认倒叙记录。<code>CatchAdmin</code> 的 <code>SQL</code> 以一次请求为基础，以会车作为分割。</p></div> <footer class="page-edit"><div class="edit-link"><a href="https://github.com/catch-admin/document/edit/master/docs/laravel/model.md" target="_blank" rel="noopener noreferrer">在 Github 编辑此页</a> <span><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg> <span class="sr-only">(opens new window)</span></span></div> <!----></footer> <div class="page-nav"><p class="inner"><span class="prev"><a href="/laravel/module.html" class="prev"><i aria-label="icon: left" class="anticon anticon-left"><svg viewBox="64 64 896 896" focusable="false" data-icon="left" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M724 218.3V141c0-6.7-7.7-10.4-12.9-6.3L260.3 486.8a31.86 31.86 0 0 0 0 50.3l450.8 352.1c5.3 4.1 12.9.4 12.9-6.3v-77.3c0-4.9-2.3-9.6-6.1-12.6l-360-281 360-281.1c3.8-3 6.1-7.7 6.1-12.6z"></path></svg></i>
        模块
      </a></span> <span class="next"><a href="/laravel/console.html">
        命令
        <i aria-label="icon: right" class="anticon anticon-right"><svg viewBox="64 64 896 896" focusable="false" data-icon="right" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M765.7 486.8L314.9 134.7A7.97 7.97 0 0 0 302 141v77.3c0 4.9 2.3 9.6 6.1 12.6l360 281.1-360 281.1c-3.9 3-6.1 7.7-6.1 12.6V883c0 6.7 7.7 10.4 12.9 6.3l450.8-352.1a31.96 31.96 0 0 0 0-50.4z"></path></svg></i></a></span></p></div> </main> <!----></div><div class="global-ui"></div></div>
    <script src="/assets/js/app.d0396f44.js" defer></script><script src="/assets/js/2.1cef47df.js" defer></script><script src="/assets/js/30.c7732a2c.js" defer></script>
  </body>
</html>